package com.haizhi.workstation.result;

import lombok.Getter;
import lombok.Setter;

/**
 * 响应对象
 * @param <T>
 */
@Setter
@Getter
public class Result<T> {
    private int code;//自定义的后台处理的响应码
    private String msg;//后台响应的信息
    private T data;//响应数据
    public Result(){}
    public Result(int code, String msg, T data){
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 请求成功时,返回成功时的状态码信息,及请求需要的数据
     * @param data
     * @param <T>
     * @return
     */
    public static <T> Result success(T data){
        return new Result(200,"success",data);
    }

    /**
     * 请求处理出现错误时,返回错误响应码,和错误信息,不需要携带数据
     * @param codeMsg
     * @param <T>
     * @return
     */
    public static <T> Result error(CodeMsg codeMsg){
        return new Result(codeMsg.getCode(),codeMsg.getMsg(),null);
    }

}
